hill climbing algorithm python